/**
 * 安卓白金英雄坛制作组 <br>
 * 文件名：StatusScreen.java <br>
 * 创建时间：2013-8-13 下午3:42:39 <br>
 * 所属项目：GmudEX <br>
 * @author 12548 <br>
 */
package lostland.gmud.exv2.ui;

import lostland.gmud.exv2.FontSize;
import lostland.gmud.exv2.GameConstants;
import lostland.gmud.exv2.Gmud;
import lostland.gmud.exv2.MainCharTile;
import lostland.gmud.exv2.MapScreen;
import lostland.gmud.exv2.MapTile;
import lostland.gmud.exv2.blgframework.impl.BLGGraphics;
import lostland.gmud.exv2.data.Room;
import lostland.gmud.exv2.data.TalentDesc;
import lostland.gmud.exv2.ui.core.MenuScreen;
import lostland.gmud.exv2.ui.core.NewButton;

/**
 * 类名：StatusScreen <br>
 * 说明：状态屏
 *
 * @author 12548
 */
public class StatusScreen extends MenuScreen {

	String sex_text[] = new String[]{
			"男", "女", "?"
	};

	/**
	 * 将相貌修正为0~35之间的值<br>
	 * 0~15转换为10~15<br>
	 * 29~50转换成29~35
	 *
	 * @param face 相貌值
	 * @return 修正后的值[0, 35]
	 */
	int get_face_level(int face) {
		int f = Gmud.format(face, 0, -1);
		if (f < 15) {
			f = f / 3 + 10;
		} else if (f > 29) {
			f = (int) (f * 0.3 + 20.6);
		}
		return Gmud.format(f, 10, 35);
	}

	/**
	 * 获取相貌描述，包括特殊相貌的达成条件<br>
	 * 0 未成年；1 穿异性衣服；2 没穿衣服<br>
	 * 3 中年；4 中老年；5 老年<br>
	 * 6 饥饿；7 伤重；8 知识分子
	 */
	String getFacedes() {
		if (Gmud.mc.age < 16) //未成年
			return GameConstants.face[Gmud.mc.sex][0];

		if(Gmud.mc.getHp() < Gmud.mc.getMaxhp() / 9) //伤重
			return GameConstants.face[Gmud.mc.sex][7];
		if (Gmud.mc.isHungry()) //饥饿
			return GameConstants.face[Gmud.mc.sex][6];
		if (!Gmud.mc.equips(false)) //裸体
			return GameConstants.face[Gmud.mc.sex][2];
//		if(Gmud.mc.sex == 1){ //奇装异服
//			boolean get = Gmud.mc.equips(false);
//			for(int wp: Gmud.mc.itemsckd){
//				if(Gmud.contains(ItemTemplate.female_items, wp) ||
//						(Gmud.mc.itemsckd.length == 1 && wp == 42)){
//					get = false;
//					break;
//				}
//			}
//			if(get)
//				return GameConstants.face[1][1];
//		}
//		else
//			if(Gmud.mc.sex == 0){
//			for(int wp: Gmud.mc.itemsckd){
//				if(Gmud.contains(ItemTemplate.female_items, wp))
//					return GameConstants.face[0][1];
//			}
//		}
		if (Gmud.mc.skills[9] > 149) //知识分子
			return GameConstants.face[Gmud.mc.sex][8];

		if (Gmud.mc.age > 30 && Gmud.mc.age <= 40) //中年（31~40）
			return GameConstants.face[Gmud.mc.sex][3];
		else if (Gmud.mc.age > 40 && Gmud.mc.age <= 55) //中老年（41~55）
			return GameConstants.face[Gmud.mc.sex][4];
		else if (Gmud.mc.age > 55) //老年（56~）
			return GameConstants.face[Gmud.mc.sex][5];

		return GameConstants.face[Gmud.mc.sex][get_face_level(Gmud.mc.getface())];
	}

	int page = 0;
	String text[];


	public StatusScreen() {
		super(new StatusButton[]
				{
						new StatusButton(0),
						new StatusButton(1),
						new StatusButton(2),
						new StatusButton(3)
				});

		dummyBorder = new StatusBorder();

		TalentDesc td = Gmud.getTalent_desc().get(Gmud.mc.talent);

		String talent = (td == null) ? "无" : td.getName() + "\n" + td.getDesc();

//		Gmud.mc.setMaxhp(Gmud.mc.getMaxhpInTheory());

		text = new String[]{
				" 状态\n" +
						"食物:" + Gmud.mc.food + "/" + Gmud.mc.getFoodmax() +
						"\n饮水:" + Gmud.mc.drink + "/" + Gmud.mc.getWatermax() +
						"\n生命:" + Gmud.mc.getSp() + "/" + Gmud.mc.getHp() + "(" + Gmud.mc.getHp() * 100 / Gmud.mc.getAttr(Room.ATTR_MAXHP) +
						"%)\n内力:" + Gmud.mc.getFp() + "/" + Gmud.mc.getAttr(Room.ATTR_MAXFP) + "(+" + Gmud.mc.getAttr(Room.ATTR_ADS) +
						")\n经验:" + Gmud.mc.getAttr(Room.ATTR_EXP) + " 潜能: " + Gmud.mc.potential,

				" 描述\n" +
						Gmud.getFactionName(Gmud.mc.faction) + Gmud.mc.name +
						"\n你是一位" + Gmud.mc.age + "岁的" + sex_text[Gmud.mc.sex] +
						"性\n你" + getFacedes() +
						"\n你武艺看起来" + Gmud.getLvlDesc(Gmud.mc.getpj()) +
						"\n出手似乎" + Gmud.mc.getcs(),

				" 属性\n" +
						"金钱:" + Gmud.mc.gold +
						"\n膂力 [" + Gmud.mc.getAttr(Room.ATTR_STR) + "/" + Gmud.mc.str + "] 命中 [" + Gmud.mc.getAttr(Room.ATTR_HIT) +
						"]\n敏捷 [" + Gmud.mc.getAttr(Room.ATTR_AGI) + "/" + Gmud.mc.agi + "] 回避 [" + Gmud.mc.getAttr(Room.ATTR_EVD) +
						"]\n悟性 [" + Gmud.mc.getAttr(Room.ATTR_WXG) + "/" + Gmud.mc.wxg + "] 攻击 [" + Gmud.mc.getAttr(Room.ATTR_ATK) +
						"]\n根骨 [" + Gmud.mc.getAttr(Room.ATTR_BON) + "/" + Gmud.mc.bon + "] 防御 [" + Gmud.mc.getAttr(Room.ATTR_DEF) + "]",

				" 宏观" +
//				"\n" + (game.data.getSyuume() < 6 ? GameConstants.zm[game.data.getSyuume()] : "番外周目") + " [" + GameConstants.diff[game.data.game_difficulty] + "难度]" +
						"\n声望：" + GameConstants.fame[Gmud.mc.getFame()] +
//				"\n福缘：" + (game.data.task_casting == 2 ? GameConstants.fate[Gmud.mc.getFate()] : "冻结中...") +
						"\n天赋：" + talent +
						""
		};

		for (int i = 0; i < buttons.length; i++) {
//			buttons[i].x = dummyBorder.x + 2 + 36 * ((StatusButton)buttons[i]).index;
			buttons[i].y = dummyBorder.y + 2;
		}
	}

	/* （非 Javadoc）
	 * @see lostland.gmud.exv2.ui.MenuScreen#onClick(int)
	 */
	@Override
	protected void onClick(int index) {
		page = index;
	}

	/* （非 Javadoc）
	 * @see lostland.gmud.exv2.ui.DialogScreen#onCancel()
	 */
	@Override
	public void onCancel() {
		getGame().popScreen();
	}


	/* （非 Javadoc）
	 * @see lostland.gmud.exv2.ui.core.ButtonControlledScreen#show()
	 */
	@Override
	protected void show() {
		BLGGraphics g = (BLGGraphics) getGame().getGraphics();
//		g.clear(Gmud.getBgColor());

		MapScreen.getInstance().getMap().draw(MapTile.getInstance(), MapScreen.X, MapScreen.Y);
		MainCharTile.getInstance().drawInMap(MainCharTile.getInstance().currentDirection,
				MainCharTile.getInstance().currentStep, MainCharTile.getInstance().X, MainCharTile.getInstance().Y);

		dummyBorder.draw();
		for (int i = 0; i < 4; i++) {
			buttons[i].draw();
		}
		g.drawSplitedText(text[page], dummyBorder.x + 2, dummyBorder.y + 2, FontSize.FT_12PX);
	}

//	NewButton cl[] = {NewButton.NB_UP,NewButton.NB_UP,NewButton.NB_DOWN,NewButton.NB_DOWN,
//			NewButton.NB_LEFT,NewButton.NB_RIGHT,NewButton.NB_LEFT,NewButton.NB_RIGHT};
//
//	NewButton cl2[] = {NewButton.NB_UP,NewButton.NB_DOWN,NewButton.NB_DOWN,NewButton.NB_DOWN,
//			NewButton.NB_LEFT,NewButton.NB_RIGHT,NewButton.NB_DOWN,NewButton.NB_DOWN};
//
//	int cc = 0;
//	int cc2 = 0;

	/* （非 Javadoc）
	 * @see lostland.gmud.exv2.ui.core.MenuScreen#onButtonClick(lostland.gmud.exv2.ui.core.NewButton)
	 */
	@Override
	public void onButtonClick(NewButton b) {
//		if(b == cl[cc] && GmudGame.getInstance().data.game_difficulty < 2)
//		{
//			cc++;
//			if(cc >= cl.length)
//			{
//				GmudWorld.mc.earnMoney(50000);
//				GmudWorld.mc.setPotential(GmudWorld.mc.potential + 10000);
//				GmudWorld.mc.setExp(GmudWorld.mc.exp+20000);
////				BasicScreen.recheck();
//				cc = 0;
//			}
//		}
//		else
//			cc=0;
//
//		if(b == cl2[cc2] && GmudGame.getInstance().data.game_difficulty < 2)
//		{
//			cc2++;
//			if(cc2 >= cl2.length)
//			{
//				for(int i = 0; i < 42;i++){
//				//获得全部技能（不含三凸技能）
//					GmudWorld.mc.skills[i] = 200;
//				}
//				GmudWorld.mc.maxfp = 3000;
////				BasicScreen.recheck();
//				cc2 = 0;
//			}
//		}
//		else
//			cc2=0;

		super.onButtonClick(b);
		page = cursor;
	}

}
